本文介绍
你有没有这样一种感觉,为什么到自己手上的数据,总是乱七八糟? 作为一个数据分析师来说,数据清洗是必不可少的环节。有时候由于数据太乱,往往需要花费我们很多时间去处理它。因此掌握更多的数据清洗方法,会让你的能力调高100倍。 本文基于此,讲述pandas中超级好用的str矢量化字符串函数,学了之后,瞬间感觉自己的数据清洗能力提高了。
1个数据集,16个Pandas函数
数据集是黄同学精心为大家编造,只为了帮助大家学习到知识。数据集如下:
importpandasaspd df={'姓名':['黄同学','黄至尊','黄老邪','陈大美','孙尚香'], '英文名':['Huangtong_xue','huangzhi_zun','HuangLao_xie','ChenDa_mei','sunshang_xiang'], '性别':['男','women','men','女','男'], '身份证':['463895200003128433','429475199912122345','420934199110102311','431085200005230122','420953199509082345'], '身高':['mid:175_good','low:165_bad','low:159_bad','high:180_verygood','low:172_bad'], '家庭住址':['湖北广水','河南信阳','广西桂林','湖北孝感','广东广州'], '电话号码':['13434813546','19748672895','16728613064','14561586431','19384683910'], '收入':['1.1万','8.5千','0.9万','6.5千','2.0万']} df=pd.DataFrame(df) df 结果如下:
![bcebfca8-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2ADHc0AAAu7ffVpKM168.png)
观察上述数据,数据集是乱的。接下来,我们就用16个Pandas来对上述数据,进行数据清洗。
① cat函数:用于字符串的拼接
df["姓名"].str.cat(df["家庭住址"],sep='-'*3) 结果如下:
![bd027afa-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AGQNVAAAK2LpREAM895.png)
② contains:判断某个字符串是否包含给定字符
df["家庭住址"].str.contains("广") 结果如下:
![bd0e3d40-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AfWikAAAFRGR3B0k710.png)
③ startswith/endswith:判断某个字符串是否以…开头/结尾
#第一个行的“黄伟”是以空格开头的 df["姓名"].str.startswith("黄") df["英文名"].str.endswith("e") 结果如下:
![bd1e5ba8-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AFas6AAAJxpiUVH4896.png)
④ count:计算给定字符在字符串中出现的次数
df["电话号码"].str.count("3") 结果如下:
![bd2bac22-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2ADwexAAAEiew7SJM406.png)
⑤ get:获取指定位置的字符串
df["姓名"].str.get(-1) df["身高"].str.split(":") df["身高"].str.split(":").str.get(0) 结果如下:
![bd3eebde-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AdrP1AAAMoIyPNtc824.png)
⑥ len:计算字符串长度
df["性别"].str.len() 结果如下:
![bd502714-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AKaS2AAAD4Xbhl8E524.png)
⑦ upper/lower:英文大小写转换
df["英文名"].str.upper() df["英文名"].str.lower() 结果如下:
![bd5d8d82-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2APks3AAAJYeovqKQ859.png)
⑧ pad+side参数/center:在字符串的左边、右边或左右两边添加给定字符
df["家庭住址"].str.pad(10,fillchar="*")#相当于ljust() df["家庭住址"].str.pad(10,side="right",fillchar="*")#相当于rjust() df["家庭住址"].str.center(10,fillchar="*") 结果如下:
![bd691940-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AdKvUAAAd6Y8n2pU673.png)
⑨ repeat:重复字符串几次
df["性别"].str.repeat(3) 结果如下:
![bd73b710-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AS1g3AAAE8A7E3rU744.png)
⑩ slice_replace:使用给定的字符串,替换指定的位置的字符
df["电话号码"].str.slice_replace(4,8,"*"*4) 结果如下:
![bd814ac4-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AN6sGAAAIjk94tQo118.png)
⑪ replace:将指定位置的字符,替换为给定的字符串
df["身高"].str.replace(":","-") 结果如下:
⑫ replace:将指定位置的字符,替换为给定的字符串(接受正则表达式)
replace中传入正则表达式,才叫好用;
先不要管下面这个案例有没有用,你只需要知道,使用正则做数据清洗多好用;
df["收入"].str.replace("d+.d+","正则") 结果如下:
![bd9fe4de-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AUWA3AAAFoRtt1kw417.png)
⑬ split方法+expand参数:搭配join方法功能很强大
#普通用法 df["身高"].str.split(":") #split方法,搭配expand参数 df[["身高描述","final身高"]]=df["身高"].str.split(":",expand=True) df #split方法搭配join方法 df["身高"].str.split(":").str.join("?"*5) 结果如下:
![bdacbbb4-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AG00dAADB8nc15EA864.png)
⑭ strip/rstrip/lstrip:去除空白符、换行符
df["姓名"].str.len() df["姓名"]=df["姓名"].str.strip() df["姓名"].str.len() 结果如下:
![bde4a2ea-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl2AB9w0AAAHLcjhblg678.png)
⑮ findall:利用正则表达式,去字符串中匹配,返回查找结果的列表
findall使用正则表达式,做数据清洗,真的很香!
df["身高"] df["身高"].str.findall("[a-zA-Z]+") 结果如下:
![bdf09636-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl6AM7waAAAJffGtG4U623.png)
⑯ extract/extractall:接受正则表达式,抽取匹配的字符串(一定要加上括号)
df["身高"].str.extract("([a-zA-Z]+)") #extractall提取得到复合索引 df["身高"].str.extractall("([a-zA-Z]+)") #extract搭配expand参数 df["身高"].str.extract("([a-zA-Z]+).*?([a-zA-Z]+)",expand=True) 结果如下:
![be02c400-9be2-11eb-8b86-12bb97331649.png](https://file.elecfans.com/web1/M00/EA/B1/pIYBAGB1Bl6Ab5PqAAAgTikEaUs614.png)
今天的文章,就讲述到这里,希望能够对你有所帮助。
编辑:jq
原文标题:详解16个 pandas 函数,让你的 “数据清洗” 能力提高100倍!
文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。
收藏
人收藏
扫一扫,分享给好友
复制链接分享
评论
发布评论请先 登录
相关推荐
如何快速学习并精通C语言
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文....
嵌入式ARM 发表于 03-12 11:59 •
128次
阅读
编写一个简单的C51程序
对于嵌入式系统,如果没有运行RTOS,那么程序开发中的 主函数(main())需要通过某种机制使其永....
嵌入式ARM 发表于 03-12 11:17 •
175次
阅读
关于堆和栈的理论知识
栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结....
嵌入式ARM 发表于 03-12 10:54 •
138次
阅读
数之联聚焦泛半导体行业的AI+工业检测
2018年,成都数之联科技股份有限公司(下称“数之联”)接到了厦门某电子集团的电话,让他们迅速准备一....
发表于 03-11 16:31 •
2次
阅读
利用AI+大数据技术提升先进制造产品良率
良率在工业生产中占据非常重要的地位,在某些高端制造行业,良率管理能力甚至可以被认为是企业核心竞争力。....
发表于 03-11 15:57 •
6次
阅读
常见的通信协议有哪些
协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计....
strongerHuang 发表于 03-11 13:58 •
168次
阅读
串行通信的应用场合
通信的种类和方式有很多,今天为大家分享一下通信中常见的同步、异步,单工、双工通信的区别。
strongerHuang 发表于 03-11 13:54 •
134次
阅读
高性能IRT的组态
在巡视窗口中,选择“属性 > 常规 > PROFINET > 管理 > 同步域 > 同....
机器人及PLC自动化应用 发表于 03-11 11:14 •
138次
阅读
高光谱遥感在乐山文物保护中的应用
高光谱遥感,是高光谱分辨率遥感测量的简称,它是从感兴趣的物体中获取许多比较窄、光谱连续的影像数据,并....
发表于 03-11 10:32 •
2次
阅读
如何应用Material Design 3和Material You
Material You 是下一代 Material Design 的发展方向,也是一种全新的设....
谷歌开发者 发表于 03-11 10:24 •
113次
阅读
智齿科技完成1亿美金D轮融资 Semtech发布单向4通道解决方案
近日,一体化客户联络解决方案提供商智齿科技宣布完成1亿美金D轮融资。本轮融资由软银愿景基金2期领投,....
发表于 03-11 09:56 •
418次
阅读
NÜWA多模态模型支持八大视觉生成与编辑任务
小编说:“自然语言”正在越来越经常地出现在我们的日常生活中。你有没有想象过,我们有一天可以使用自然语....
微软科技 发表于 03-11 09:23 •
84次
阅读
微软多管齐下,构建现代化数据安全架构
小编说:面对后疫情时代的新常态发展,企业想持续发展不仅要克服频繁的供应链冲击和人才短缺等挑战,还要面....
微软科技 发表于 03-11 09:11 •
84次
阅读
CAN FD如何提高通信效率
CAN的应用越来越广,汽车电子、工业控制、大型仪器设备等随处可见CAN总线。
strongerHuang 发表于 03-10 17:59 •
372次
阅读
C语言有哪些语法技巧和功能
C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非....
strongerHuang 发表于 03-10 17:42 •
714次
阅读
Pulse工具产品介绍与其功能详解
上周,【虹科云课堂】数据管理与可视化解决方案前两期课程圆满结束,感谢大家的观看与支持。虹小科为大家整....
广州虹科电子科技有限公司 发表于 03-10 13:03 •
117次
阅读
如何提升电梯维保企业安全管理水平
据统计,2019年全年电梯生产总量有超过100万台,全国在用量将突破700万台。发达国家,一个电梯维....
发表于 03-10 10:44 •
6次
阅读
基于以太网的开放式实时现场总线系统
EtherCAT是一种基于以太网的开放式实时现场总线系统。EtherCAT的研发目标是将以太网应用于....
Excelpoint世健 发表于 03-10 10:35 •
175次
阅读
一文详细了解ADC时间交错技术
时间交错技术可使用多个相同的 ADC(文中虽然仅讨论了 ADC,但所有原理同样适用于 DAC 的时间....
Excelpoint世健 发表于 03-10 10:35 •
192次
阅读
无线通讯技术在水泥余热发电系统的应用
近年来,《2030年前碳达峰行动方案》以及发改委等六部委下发《关于严格能效约束推动重点领域节能降碳的....
发表于 03-10 08:56 •
7次
阅读
使用GoRK3288库的时候需要用到的语法有哪些呢
使用GoRK3288库的时候需要用到的语法有哪些呢?...
发表于 03-10 06:49 •
110次
阅读
通信协议常见内容有哪些
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位....
strongerHuang 发表于 03-09 17:22 •
367次
阅读
C语言简单模拟委托与简单模拟反射
函数是C语言的核心概念。主调函数(caller)调用被调函数(callee)是一般的调用关系,如果被....
硬件攻城狮 发表于 03-09 17:17 •
1066次
阅读
关于1I²C读写EEPROM基础原理
相信很多读者都使用过类似AT24C0x这种使用I²C读写的EEPROM,在项目中,使用不当就容易导致....
strongerHuang 发表于 03-09 17:14 •
1170次
阅读
Teledyne携手伙伴实现创新平台足迹 安谋科技出席集成电路产业论坛
近日,MicroLED微显示芯片领先制造商JBD正式对外发布其应用于智能眼镜的AmµLED™ Mic....
发表于 03-09 14:30 •
782次
阅读
VMA和LMA的基本概念简介与常见问题解析
VMA和LMA的基本概念与常见问题解答
摘要:本文介绍VMA和LMA的基本概念,并针对一些理解过程中的常见疑问做出解...
发表于 03-09 06:45 •
242次
阅读
python私有变量和私有方法
python私有变量和私有方法 1. 下划线妙用 在 Python 中,下划线可是非常推荐使用的符号....
python爬虫知识分享 发表于 03-08 16:30 •
360次
阅读
硅晶片的酸刻蚀实验分析
已经完成了理解硅的三相、基于酸的湿法蚀刻中的传输和动力学效应的研究。反应物克服液相传质阻力和动力学阻....
发表于 03-08 14:05 •
12次
阅读
AR-HUD或成智能汽车赛道差异化竞争标配
电子发烧友网报道(文/莫婷婷)随着自动驾驶关键元器件的技术迭代,以及相关算法的升级,汽车智能化进展加....
电子发烧友网 发表于 03-08 13:22 •
838次
阅读
一文详细了解量子密码
被喻为“重要数据保险箱”的安全芯片已经渗入人们生活的方方面面。随着5G、物联网、车联网的迅速发展,为....
上海航芯 发表于 03-08 10:32 •
268次
阅读
朗科US1指纹加密U盘安全守护私密文件
我们大多数人的存储需求就是保存一些日常数据、家庭照片视频,工作上会经常通过U盘来相互传递资料。有些资....
发表于 03-08 09:27 •
10次
阅读
RK3399 Android 7.1亮度调节的步骤有哪些呢
RK3399 Android 7.1亮度调节的原理是什么?
RK3399 Android 7.1亮度调节的步骤有哪些呢?
...
发表于 03-08 09:20 •
283次
阅读
请教大神RK3399-RGA该怎样去使用呢
请教大神RK3399-RGA该怎样去使用呢?
发表于 03-08 09:18 •
289次
阅读
TG6101开发实战:蓝牙开发概述
TG6101开发实战:蓝牙开发
1.概述
TG6101 SDK中使用bluedroid栈(4.0)实现对BR/BLE的开发,其中BR主要应用为...
发表于 03-08 08:43 •
638次
阅读
【1024平头哥开发套件开发体验】- sc5654 高级使用步骤
【1024平头哥开发套件开发体验】- sc5654 高级使用
SC5654语音识别流程介绍
语音转文字:asr使用MIT云
函数:void aui...
发表于 03-08 08:34 •
443次
阅读
HarmonyOS部分文件目录整理
了解相关目录可以更好的帮助我们开发相关功能,例如,api6的JS无法直接获取相册文件,但可以访问应用....
鸿蒙时代 发表于 03-07 16:05 •
216次
阅读
HF、HNO3和H2O体系中硅的化学刻蚀实验
本文研究了HF、HNO3和H2O体系中硅的蚀刻动力学作为蚀刻剂组成的函数。蚀刻速率与蚀刻剂组成的三轴....
发表于 03-07 15:27 •
8次
阅读
思必驰推出简单易操作的发音人音色定制平台
二次元歌姬初音未来、洛天依等虚拟人因独有的音色和软萌的外表受到很多人的喜爱,从推出单曲到开线下演唱会....
思必驰 发表于 03-07 15:05 •
753次
阅读
“一网统管”正在成为实现城市治理现代化的新手段
国家“十四五”规划明确提出“加快建设数字经济、数字社会、数字政府,以数字化转型整体驱动生产方式、生活....
华为数字中国 发表于 03-07 12:36 •
376次
阅读
易灵思16nm FPGA助力汽车市场发展 天玑智慧监管解决方案亮相推进会
针对新能源汽车中的自动驾驶、智能座舱和电气化应用,易灵思推出40nm Trion系列中T13F169....
发表于 03-07 11:05 •
820次
阅读
数据文件合并
第一次练手写的小工具,可以批量将大量测试数据文件合并成一个文档,以便后续处理,奉上源码,各位可自由发挥。
...
发表于 03-04 16:52 •
870次
阅读
如何在Excel融合分析中实现仪表盘效果
精心设计的仪表盘不仅可以协调组织工作,帮助发现问题的关键,还可以让别人一眼就知道你想表达什么,或者在....
发表于 03-04 16:19 •
6次
阅读
曙光4K/8K制作存储解决方案
如火如荼的北京冬奥会已经全部采用4K超高清信号制作,这是第一次在所有项目上使用UHD(超高清)和HD....
中科曙光 发表于 03-04 13:44 •
308次
阅读
python偏函数和泛型函数
python偏函数假如一个函数定义了多个位置参数,那你每次调用时,都需要把这些个参数一个一个地传递进去。
比如下面这个函数,是...
发表于 03-03 16:44 •
962次
阅读
python偏函数和泛型函数详解
python偏函数 假如一个函数定义了多个位置参数,那你每次调用时,都需要把这些个参数一个一个地传递....
python爬虫知识分享 发表于 03-03 16:43 •
399次
阅读
四维图新及世纪高通将进一步落地CIM典型场景
近日,由城市信息模型CIM网组织编写的《2021年城市信息模型(CIM)发展白皮书(指数报告)》(下....
四维图新NavInfo 发表于 03-03 15:10 •
438次
阅读
如何把uboot层logo的关闭显示呢
如何把uboot层logo的关闭显示呢?
如果logo不显调用kernel logo显示函数可以吗?
...
发表于 03-03 06:25 •
117次
阅读
python高阶函数
python高阶函数1. map 函数map 函数,它接收两个参数,第一个参数是一个函数对象(当然也可以是一个lambda表达式),第二个参数是...
发表于 03-02 16:47 •
568次
阅读
python高阶函数详解
python高阶函数 1. map 函数 map 函数,它接收两个参数,第一个参数是一个函数对象(当....
python爬虫知识分享 发表于 03-02 16:47 •
165次
阅读
python匿名函数的使用
python匿名函数的使用 匿名函数(英语:anonymous function)是指一类无需定义标....
python爬虫知识分享 发表于 03-02 16:42 •
160次
阅读
如何在STM32中要实现数据通讯
z在stm32中要实现数据通讯,首先要设置相关的寄存器,这里不做相关的介绍,直接说代码相关的能内容及....
嵌入式应用开发 发表于 03-02 08:56 •
221次
阅读
11个案例讲解python函数参数
函数,在定义的时候,可以有参数的,也可以没有参数。
python爬虫知识分享 发表于 03-01 16:39 •
229次
阅读
详解python普通函数创建与调用
函数是一种仅在调用时运行的代码块。您可以将数据(称为参数)传递到函数中,然后由函数可以把数据作为结果....
python爬虫知识分享 发表于 03-01 16:32 •
222次
阅读
餐饮油烟监测云平台系统解决方案
餐饮业油烟是大气中挥发性有机物(VOCS)和PM10的主要来源之一。近年来随着环保治理的加强,省市区....
发表于 03-01 15:46 •
16次
阅读
python推导式是什么
python推导式 推导式(英文名:comprehensions),也叫解析式,是Python的一种....
python爬虫知识分享 发表于 02-28 17:13 •
183次
阅读
KING KABLE光纤USB3.0有源光缆的特性及应用
KING KABLE USB 3.0有源光缆(AOC)采用USB 3.0光电转换模块和光纤线缆制作而....
发表于 02-28 10:39 •
22次
阅读
时间约束的实体解析中记录对排序研究
摘 要:实体解析是数据集成和数据清洗的重要组成部分,也是大数据分析与挖掘的必要预处理步骤.传统的批处....
发表于 02-26 16:25 •
16次
阅读
为什么要做需求管理,如何做需求管理
需求管理是产品经理非常重要的一项技能,简单理解,就是产品经理要记录所有需求,并根据公司的战略目标,对....
产品经理:从入门到卓越 发表于 02-26 09:52 •
167次
阅读
境外服务器中的数据一般多久备份一次
对境外服务器中的数据定期备份,利于保护境外服务器中存储数据的安全,避免因为境外服务器出现意外导致数据....
深圳市恒讯科技有限公司 发表于 02-25 16:53 •
292次
阅读
四张大屏模板告诉你智慧农业怎么做
俗话说得好,“民以食为天”。众所周知,我国是农业大国,农业是我国的根本。2015年我国开始大力提倡智....
发表于 02-25 14:41 •
26次
阅读
|